﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Prassi2ExpertUpTransfer
{
    public abstract class GenericException : Exception
    {
        public enum CodiceEccezione
        {
            ProtocolloIvaNonNumerico,
            CmdSqlErrore,
            TrasferFileErrore,
            RigaZ1NonTrovata,
            FormatoMastroContoSottoContoErrati,
            RigaU1NonTrovata,
            RigaB1NonTrovata,
            RigaB1ImportoNonNumerico,
            RigaU1ImportoNonNumerico,
            RigaZ1DataErrata,
            RigaZ1ImportoNonNumerico,
            CodiceDittaNonNumerico,
            RigaB1GruConCliForNonNumerico,
            RigaB1ContoCliForNonNumerico,
            RigaB1CodiceCliForNonNumerico,
            TrasferEsistente,
            TrasferGeneric,
            Riga_1DataErrata,
            RigaB1DataErrata,
            RigaB1CodiceAgenteNonNumerico,
            TrasferSequenzaInvio,
            ConversioneCodiceNonRiuscita
        }

        CodiceEccezione codiceEccezione;

        public abstract CodiceEccezione CodiceEccezioneDellaClasse();
        public abstract String DescrizioneEccezione();

        public override string Message
        {
            get
            {
                return DescrizioneEccezione();
            }
        }


        public GenericException(CodiceEccezione codiceEccezioneInput, String message, Exception excpInner)
            :base(message, excpInner)
        {
            this.codiceEccezione = codiceEccezioneInput;
        }
    }
}
